function createXMLHttpRequest(){
			let xmlHttpRequest;
			if(window.XMLHttpRequest){
				xmlHttpRequest = new XMLHttpRequest();
			}else{
				xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			return xmlHttpRequest;
}



function hasKey(entriy,contentType){
	for(const [key,value] of entriy){
		if(key == contentType){
			return true;
		}
	}
	return false;
}

/* 
 * option
 *    -method: 请求方式  可选参数，默认GET
 *    -url: 请求地址  必选参数
 *    -async: 是否异步 可选参数，默认true
 *    -headers：请求头【对象】 可选参数
 *    -params: 请求参数  可选参数
 *    -type: 响应数据类型  'string' | 'json' | 'xml' 默认 string
 *    -callback :必须参数 请求成功时候的回调函数(处理响应的数据)
 *    -fail: 可选参数  失败时候的调用回调函数
 * 
 */
function ajax(option){
	//1.创建对象
	let httpRequest = createXMLHttpRequest(); 
	if(!option.method){
		//设置默认请求方式为 GET
		option.method = "GET";
	}
	if(!option.async){
		option.async = true;

	}
	
	//2.建立请求
	httpRequest.open(option.method,option.url,option.async);
	//如果请求头为定义
	if(!option.headers){
		if(option.method == 'POST'){
			console.log('默认头')
			//默认设置请求头
			httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		}
	}
	//自定义头的设置
	if(option.headers){
		console.log('自定义头')
		let key_value =  Object.keys(option.headers).map(key=>[key,option.headers[key]]);
		for(const [key,value] of key_value){
			httpRequest.setRequestHeader(key,value);
		}	
		
		let isOrOn = key_value.some((item)=>{item[0] == 'Content-type'});
		if(!isOrOn){
			httpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		}	
	}
	//3.设置请求参数
	httpRequest.send(option.params);
	
	//4.获取响应数据
	httpRequest.onreadystatechange = function(){
		if(httpRequest.readyState == 4 && httpRequest.status == 200){
			let data = null;
			if(option.type == "JSON"){
				data = eval('('+httpRequest.responseText+')');
			}else if(option.type === 'XML'){
				data = httpRequest.responseXML;
			}else {
				data = httpRequest.responseText;
			}
			option.callback(data);
		}
	}
	
}

